FUnit, Fortran programlama dilinde kullanılan bir birim test çerçevesidir. Temel amacı, yazılan Fortran kodunun doğru ve beklendiği gibi çalıştığını doğrulamak için otomatik testler oluşturmak ve çalıştırmaktır. İşte FUnit'in nasıl kullanılacağına dair temel bilgiler:
1. Kurulum ve Yapılandırma:
FUnit, genellikle sisteminize ayrıca kurulması gereken bir kütüphanedir. Kurulum adımları, kullandığınız işletim sistemi ve Fortran derleyicisine göre değişiklik gösterebilir. Kurulum tamamlandıktan sonra, derleme ve bağlama aşamalarında FUnit kütüphanelerini projenize dahil etmeniz gerekir.
2. Test Dosyası Oluşturma:
FUnit testleri genellikle ayrı bir Fortran dosyasında (*.f90 veya *.f) tutulur. Bu dosya, test edilecek alt programları (subroutines veya functions) kullanır ve sonuçlarını doğrular.
3. Test Yazma:
FUnit testleri, TEST
bloğu içerisinde tanımlanır. Her bir test, belirli bir senaryoyu veya işlevselliği test eder. FUnit, sonuçları doğrulamak için çeşitli assertion (iddia) türleri sunar. Başlıca assertion türleri şunlardır:
ASSERT_EQUAL
: İki değerin eşit olup olmadığını kontrol eder.ASSERT_NEAR
: İki reel sayının belirli bir tolerans dahilinde eşit olup olmadığını kontrol eder.ASSERT_TRUE
: Bir mantıksal ifadenin doğru olup olmadığını kontrol eder.ASSERT_FALSE
: Bir mantıksal ifadenin yanlış olup olmadığını kontrol eder.ASSERT_EXCEPTION
: Beklenen bir istisna (exception) oluşup oluşmadığını kontrol eder.Örnek:
MODULE my_module
CONTAINS
FUNCTION add(a, b) RESULT(sum)
INTEGER, INTENT(IN) :: a, b
INTEGER :: sum
sum = a + b
END FUNCTION add
END MODULE my_module
PROGRAM my_module_test
USE FUnit
USE my_module
TYPE(TestFixture) :: fixture
CONTAINS
SUBROUTINE test_add
INTEGER :: result
result = add(2, 3)
ASSERT_EQUAL(5, result) ! Beklenen sonuç 5
END SUBROUTINE test_add
END
CALL RegisterFixture(fixture)
END PROGRAM my_module_test
4. Testleri Derleme ve Çalıştırma:
Test dosyasını ve test edilecek modülü FUnit kütüphaneleriyle birlikte derleyin. Ardından, oluşan çalıştırılabilir dosyayı çalıştırın. FUnit, test sonuçlarını konsolda veya belirtilen bir dosyada raporlayacaktır. Testlerin başarılı veya başarısız olduğuna dair bilgi sağlanır.
5. Raporlama:
FUnit, test sonuçlarını farklı formatlarda (örneğin, metin, XML) raporlayabilir. Bu raporlar, sürekli entegrasyon (Continuous Integration - CI) sistemlerinde otomatik test süreçlerinin bir parçası olarak kullanılabilir. CI sistemi, kodda yapılan değişikliklerin ardından otomatik olarak testleri çalıştırır ve geliştiricilere geri bildirim sağlar. Bu sayede, hatalar erken aşamada tespit edilebilir ve düzeltilebilir.
Ek Bilgiler:
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page